#define _CRT_SECURE_NO_WARNINGS 1
#include <iostream>
using namespace std;
int main()
{
    int num[] = { 5,6,8,6,9,1,6,1,2,4,9,1,9,8,2,3,6,4,7,7,
				  5,9,5,0,3,8,7,5,8,1,5,8,6,1,8,3,0,3,7,9,
				  2,7,0,5,8,8,5,7,0,9,9,1,9,4,4,6,8,6,3,3,
				  8,5,1,6,6,3,4,6,7,0,7,8,2,7,6,8,9,5,6,5,
				  6,1,4,0,1,0,0,9,4,8,0,9,1,2,8,5,0,2,5,3,3 };
    int mouth[] = { 0,31,28,31,30,31,30,31,31,30,31,30,31 };
    bool flag[13][32] = { 0 };
    int ans = 0;
    for (int a = 0; a < 100; a++)
    {
        if (num[a] == 2)
            for (int b = a + 1; b < 100; b++)
            {
                if (num[b] == 0)
                    for (int c = b + 1; c < 100; c++)
                    {
                        if (num[c] == 2)
                            for (int d = c + 1; d < 100; d++)
                            {
                                if (num[d] == 3)
                                    for (int e = d + 1, m = 0, d = 0; e < 100; e++)
                                    {
                                        for (int f = e + 1; f < 100; f++)
                                        {
                                            m = num[e] * 10 + num[f];
                                            if (m > 0 && m < 13)
                                                for (int g = f + 1; g < 100; g++)
                                                {
                                                    for (int h = g + 1; h < 100; h++)
                                                    {
                                                        d = num[g] * 10 + num[h];
                                                        if (1 <= d && d <= mouth[m])
                                                        {
                                                            if (!flag[m][d])
                                                            {
                                                                ans++;
                                                                //cout<<2023<<(m*100+d)<<'\n';
                                                                flag[m][d] = 1;
                                                            }

                                                        }
                                                        d = 0;
                                                    }
                                                }
                                            m = 0;
                                        }
                                    }
                            }
                    }
            }
    }
    cout << ans;
    return 0;
}
